#!/usr/bin/env node

//Node CLI 应用入口文件必须要有这样的文件头
// Linux 或 macOS 系统下还需要修改文件读写权限 755
//chomod 755 cli.js 

//console.log('cli working!');
//1、命令行中询问交互信息
//2、根据用户回答结果生成文件
const path = require('path')
const fs = require('fs')
const inquirer = require('inquirer');
const ejs = require ('ejs');
inquirer.prompt([
  {
    type: 'input', //指定问题的输入方式
    name: 'name', // 问题返回值得键
    message: 'Project name?' //屏幕上给用户的提示
    
  }
 
]).then(anwsers=>{  //anwsers 保存用户输入的对象
  console.log(anwsers);
  //根据模板生成文件，我们新建一个template 的目录
  //根据用户回答结果生成文件

  //要拿到模板的目录
  const temDir = path.join(__dirname, 'template')

  //目标目录,调用cwd 获取命令行中用户输入的命令
  const destDir = process.cwd();

  //将模板文件全部转换到目标目录中
  fs.readdir(temDir,(error , files)=>{
    if (error) throw error
    //遍历所有的文件
    files.forEach((file)=>{
        console.log(file);
        //接下来需要安装一个EJS模板引擎,渲染文件
        // renderFile  第一个参数是模板文件的绝对路径
        //第二个参数是用户输入的回答对象
        //第三个参数是成功的回调
        ejs.renderFile(path.join(temDir,file), anwsers, (err ,result) =>{
          if (err) {throw err} 
           //console.log(result); // 打印渲染成功后的结果
           // 将渲染成功后的结果添加到目标文件路径中
           fs.writeFileSync(path.join(destDir, file), result)
        })
    })
  })
})